package com.ruoyi.shop.mapper;

import java.util.List;
import com.ruoyi.shop.domain.ShopProductCategory;
import com.ruoyi.shop.domain.vo.ProductCategoryVo;

/**
 * 商品分类。标签、专题、类别等都属于category。Mapper接口
 * 
 * @author Alan Zhang
 * @date 2021-09-12
 */
public interface ShopProductCategoryMapper 
{
    /**
     * 查询商品分类。标签、专题、类别等都属于category。
     * 
     * @param id 商品分类。标签、专题、类别等都属于category。主键
     * @return 商品分类。标签、专题、类别等都属于category。
     */
    public ShopProductCategory selectShopProductCategoryById(Long id);

    /**
     * 查询商品分类。标签、专题、类别等都属于category。列表
     * 
     * @param shopProductCategory 商品分类。标签、专题、类别等都属于category。
     * @return 商品分类。标签、专题、类别等都属于category。集合
     */
    public List<ShopProductCategory> selectShopProductCategoryList(ShopProductCategory shopProductCategory);

    /**
     * 新增商品分类。标签、专题、类别等都属于category。
     * 
     * @param shopProductCategory 商品分类。标签、专题、类别等都属于category。
     * @return 结果
     */
    public int insertShopProductCategory(ShopProductCategory shopProductCategory);

    /**
     * 修改商品分类。标签、专题、类别等都属于category。
     * 
     * @param shopProductCategory 商品分类。标签、专题、类别等都属于category。
     * @return 结果
     */
    public int updateShopProductCategory(ShopProductCategory shopProductCategory);

    /**
     * 删除商品分类。标签、专题、类别等都属于category。
     * 
     * @param id 商品分类。标签、专题、类别等都属于category。主键
     * @return 结果
     */
    public int deleteShopProductCategoryById(Long id);

    /**
     * 批量删除商品分类。标签、专题、类别等都属于category。
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteShopProductCategoryByIds(String[] ids);

    /**
     * 查询分类名称是否存在
     * @param name
     * @return
     */
    public Long selectShopProductCategoryByName(String name);

    /**
     * 全部分类 id 名称
     * @return
     */
    public List<ProductCategoryVo> selectSimpleShopProductCategoryAll();
}
